/**
 * 
 */
package fr.thelem.gestiondemandesthelem.dao.model;

import static javax.persistence.CascadeType.PERSIST;
import static javax.persistence.CascadeType.REMOVE;

import java.io.Serializable;
import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * Entité TypeDemande. Représente le type d'une demande.
 */
@Entity
@Table(name = "TYPE_DEMANDE", uniqueConstraints = {@UniqueConstraint(name = "contrainteTypeDemande", columnNames = {"NOM_TYPE_DEMANDE"})})
public class TypeDemandeEntity implements Serializable {

    /** Attribut serialVersionUID */
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name = "IDENTIFIANT_TYPE_DEMANDE", nullable = false)
    private int identifiantTypeDemande;
    @Column(name = "NOM_TYPE_DEMANDE")
    private String nomTypeDemande;

    @OneToMany(cascade = {PERSIST, REMOVE}, mappedBy = "typeDemandeCategorie")
    private Collection<CategorieEntity> categoriesTypeDemande;

    @OneToMany(mappedBy = "typeDemandeCDDemande")
    private Collection<CDDemandeEntity> CDDemandesTypeDemande;

    /**
     * Accesseur de identifiantTypeDemande
     * 
     * @return le identifiantTypeDemande
     */
    public int getIdentifiantTypeDemande() {
        return identifiantTypeDemande;
    }

    /**
     * Affectation de identifiantTypeDemande
     * 
     * @param identifiantTypeDemande identifiantTypeDemande à affecter
     */
    public void setIdentifiantTypeDemande(int identifiantTypeDemande) {
        this.identifiantTypeDemande = identifiantTypeDemande;
    }

    /**
     * Accesseur de nomTypeDemande
     * 
     * @return le nomTypeDemande
     */
    public String getNomTypeDemande() {
        return nomTypeDemande;
    }

    /**
     * Affectation de nomTypeDemande
     * 
     * @param nomTypeDemande nomTypeDemande à affecter
     */
    public void setNomTypeDemande(String nomTypeDemande) {
        this.nomTypeDemande = nomTypeDemande;
    }

    /**
     * Accesseur de categoriesTypeDemande
     * 
     * @return le categoriesTypeDemande
     */
    public Collection<CategorieEntity> getCategoriesTypeDemande() {
        return categoriesTypeDemande;
    }

    /**
     * Affectation de categoriesTypeDemande
     * 
     * @param categoriesTypeDemande categoriesTypeDemande à affecter
     */
    public void setCategoriesTypeDemande(Collection<CategorieEntity> categoriesTypeDemande) {
        this.categoriesTypeDemande = categoriesTypeDemande;
    }

    /**
     * Accesseur de cDDemandesTypeDemande
     * 
     * @return le cDDemandesTypeDemande
     */
    public Collection<CDDemandeEntity> getCDDemandesTypeDemande() {
        return CDDemandesTypeDemande;
    }

    /**
     * Affectation de cDDemandesTypeDemande
     * 
     * @param cDDemandesTypeDemande cDDemandesTypeDemande à affecter
     */
    public void setCDDemandesTypeDemande(Collection<CDDemandeEntity> cDDemandesTypeDemande) {
        CDDemandesTypeDemande = cDDemandesTypeDemande;
    }

}
